package arithmetic.demo20;


/**
 * 题目: 贪心_递增的三元子序列
 */
class Solution {
    public boolean increasingTriplet(int[] nums) {
        int[] tmp = new int[3];
        tmp[0] = tmp[1] = tmp[2] = Integer.MIN_VALUE; int sz = 1;
        tmp[0] = nums[0];
        for(int i = 1; i < nums.length ; i++) {
            int num = nums[i];
            // 一旦 > 最后一个数就向后走
            if(num > tmp[sz-1]) {
                tmp[sz] = num;
                sz++;
            } else {
                // 有可能比第一个数还小
                if(num <= tmp[0] ) {
                    tmp[0] = num;
                } else {
                    // 有可能只是比第二个数小
                    tmp[1] = num;
                }
            }


            // 一旦个数等于3就说明存在
            if(sz == 3) return true;
        }

        return false;
    }
}


/**
 * 题目: 贪心_最长连续增序列
 */


class Solution1 {
    public int findLengthOfLCIS(int[] nums) {
        int n = nums.length;
        if(n == 1) return 1;
        int count = 1, ret = Integer.MIN_VALUE;

        // 遍历
        for(int i  = 0; i < n - 1; i++) {
            if(nums[i] < nums[i + 1]) {
                count++;
            } else {
                count = 1;
            }
            ret = Math.max(ret, count);
        }

        return ret;
    }
}


